Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: dynamic AI Backend Configuration #17

Merged
merged 5 commits into from
Nov 18, 2023
Merged

Conversation

ktos
Copy link
Member

@ktos ktos commented Nov 18, 2023

Ogólnie, to mamy dwie rzeczy: faktyczny backend, z którym odbywa się komunikacja, który wymaga specjalnego JSON-a, kluczy API i tym podobnych rzeczy, i w tym momencie dla nas to jest llama.cpp i ich moduł server. Drugą rzeczą jest postać szablonu promptów, który może być inny i jest inny dla różnych używanych modeli – teraz używamy modelu Mistral-RP-0.1-7B (https://huggingface.co/Undi95/Mistral-RP-0.1-7B-GGUF?not-for-all-audiences=true), który używa szablonu typu Alpaca (nie pytajcie...), który wygląda jakoś tak:

Below is an instruction that describes a task.

### Instruction:
{prompt}

### Response:

Ale przykładowo chciałbym przejść na model OpenHermes (https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-GGUF), i on już oczekuje kompletnie innych szablonów, bo ChatML:

<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant

Więc wpadłem na to, żeby rozdzielić AI Backend i AI Prompt Template. I to nie było specjalnie trudne, jak na razie, ale nie wiem jeszcze jak się faktycznie sprawdzi przy innych modelach.

Ale chciałbym, aby to można było dość dynamicznie zmieniać, aby można było sobie uruchomić np. na własnym komputerze, więc wybór PromptTemplateProvidera i (w przyszłości) AiBackendProvidera powinien być pobierany z konfiguracji.

No i tutaj chyba przekombinowałem, bo z jednej strony ładowanie typów po ich nazwach (niestety to muszą być QualifiedAssemblyName) jest fajne, z drugiej – trochę może zbyt dynamiczne? Może lepiej po prostu drabinkę ifów i tworzyć obiekty ręcznie?

Copy link
Collaborator

@Ktosi33 Ktosi33 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok

@Ktosi33 Ktosi33 merged commit e78e51e into pollubnet:main Nov 18, 2023
1 check passed
@ktos ktos changed the title Dynamic AI Backend Configuration feat: dynamic AI Backend Configuration Nov 18, 2023
@ktos ktos deleted the aiconfig branch December 18, 2023 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants